package com.fight.util;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

public class CommonUtils {
    /**
     * 
     * @Title: longToIp
     * @Description: 将long转换IP
     * @param @param ipaddress
     * @param @return 设定文件
     * @return String 返回类型
     * @author: 王鹏
     * @date 2012-4-10 下午7:14:22
     * @throws
     */
    public static String longToIp(long ipaddress) {
        StringBuffer sb = new StringBuffer("");
        sb.append(String.valueOf((ipaddress >>> 24)));
        sb.append(".");
        sb.append(String.valueOf((ipaddress & 0x00FFFFFF) >>> 16));
        sb.append(".");
        sb.append(String.valueOf((ipaddress & 0x0000FFFF) >>> 8));
        sb.append(".");
        sb.append(String.valueOf((ipaddress & 0x000000FF)));
        return sb.toString();
    }

    /**
     * 
     * @Title: ipToLong
     * @Description: 将IP转换为long
     * @param @param ipaddress
     * @param @return 设定文件
     * @return long 返回类型
     * @author: 王鹏
     * @date 2012-4-10 下午7:14:26
     * @throws
     */
    public static long ipToLong(String ipaddress) {
        long[] ip = new long[4];
        int position1 = ipaddress.indexOf(".");
        int position2 = ipaddress.indexOf(".", position1 + 1);
        int position3 = ipaddress.indexOf(".", position2 + 1);
        ip[0] = Long.parseLong(ipaddress.substring(0, position1));
        ip[1] = Long.parseLong(ipaddress.substring(position1 + 1, position2));
        ip[2] = Long.parseLong(ipaddress.substring(position2 + 1, position3));
        ip[3] = Long.parseLong(ipaddress.substring(position3 + 1));
        return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3];
    }

    /**
     * @Title: getTime
     * @Description: 根据时间格式和时间字符串转换成时间戳
     * @param String
     *            time
     * @param String
     *            strFormat
     * @return long 时间戳
     * @author: 温泉
     * @date 2012-04-19 17:29:06 +0800
     * @throws
     */
    public static long getTime(String time) throws Exception {
        String strFormat = "yyMMddHHmmss";
        SimpleDateFormat sdf = new SimpleDateFormat(strFormat);
        Date d;
        long result = 0;
        d = sdf.parse(time);
        result = d.getTime();
        return result;
    };

    /**
     * @Title: getVerifyCode
     * @Description: (随机验证码生成)
     * @param @return 设定文件
     * @return String 返回类型
     * @author: 王维新
     * @date 2012-07-19 11:08:09 +0800
     * @throws
     */
    public static String getVerifyCode() {
        Random rd = new Random();
        StringBuilder code = new StringBuilder(6);
        for (int i = 0; i < 5; i++) {
            code = code.append(rd.nextInt(10));
        }
        return code.toString();
    }

    /**
     * @Title: parseDouble
     * @Description: TODO(按照精度获取double位数)
     * @param @param d
     * @param @param precison
     * @param @return 设定文件
     * @return String 返回类型
     * @author: 李超峰
     * @date 2014-06-20 10:08:04 +0800
     * @throws
     */
    public static String parseDouble(Double d, String precison) {
        DecimalFormat df = new DecimalFormat(precison);
        return df.format(d);
    }
    
    /**
    * @Title: parseDouble
    * @Description: 转化double为指定精度
    * @param @param d
    * @param @param precison
    * @param @return    设定文件
    * @return double    返回类型
    * @author: 李超峰
    * @date 2015年10月26日 下午1:19:56
    * @throws
    */
    public static double parseDouble(double d, int precison){
        BigDecimal  b   = new BigDecimal(d);  
        return  b.setScale(precison,   BigDecimal.ROUND_HALF_UP).doubleValue();  
    } 
}
